以吃货的角度理解 IaaS,PaaS,SaaS 是什么?
全文字数: 1100
阅读时间: 3分钟
本文转载自博客:阮一峰的网络日志(http://www.ruanyifeng.com/)
随着云计算时代的到来,越来越多的软件,开始采用云服务。越来越多的概念也随之而来。云服务只是一个统称,可以分成三大类。
IaaS:基础设施服务,Infrastructure-as-a-service
PaaS:平台服务,Platform-as-a-service
SaaS:软件服务,Software-as-a-service
它们有什么区别呢?
IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引申,让它变得更准确易懂。
请设想你是一个餐饮业者,打算做披萨生意。
你可以从头到尾,自己生产披萨,但是这样比较麻烦,需要准备的东西多,因此你决定外包一部分工作,采用他人的服务。你有三个方案。
方案一:IaaS
他人提供厨房、炉子、煤气,你使用这些基础设施,来烤你的披萨。
方案二:PaaS
除了基础设施,他人还提供披萨饼皮。
你只要把自己的配料洒在饼皮上,让他帮你烤出来就行了。也就是说,你要做的就是设计披萨的味道(海鲜披萨或者鸡肉披萨),他人提供平台服务,让你把自己的设计实现。
方案三:SaaS
他人直接做好了披萨,不用你的介入,到手的就是一个成品。你要做的就是把它卖出去,最多再包装一下,印上你自己的 Logo。
上面的三种方案,可以总结成下面这张图。
从左到右,自己承担的工作量(上图蓝色部分)越来越少,IaaS > PaaS > SaaS。
对应软件开发,则是下面这张图。
SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。普通用户接触到的互联网服务,几乎都是 SaaS,下面是一些例子。
客户管理服务 Salesforce
团队协同服务 Google Apps
储存服务 Box
储存服务 Dropbox
社交服务 Facebook / Twitter / Instagram
PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。下面这些都属于 PaaS。
Heroku
Google App Engine
OpenShift
IaaS 是云服务的最底层,主要提供一些基础资源。它与 PaaS 的区别是,用户需要自己控制底层,实现基础设施的使用逻辑。下面这些都属于 IaaS。
Amazon EC2
Digital Ocean
RackSpace Cloud
参考链接
SaaS, PaaS and IaaS explained in one graphic, by David Ng
When to use SaaS, PaaS, and IaaS, by Eamonn Colman
推荐阅读
如果你看到了这里,说明你喜欢本文。
那么请长按二维码,关注Hollis
长按二维码关注